﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace SistemaCruzAzul.Web.Account
{
    public partial class RegistroUsuario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnregistrar_Click(object sender, EventArgs e)
        {

            
            //Create new user and retrieve create status result.            
            try
            {
            MembershipUser newUser = Membership.CreateUser(txtuser.Text, txtpass.Text);
                    if (Membership.RequiresQuestionAndAnswer)
                    {
                        newUser.ChangePasswordQuestionAndAnswer(txtpass.Text,
                                                                txtquestion.Text,
                                                                txtasw.Text);
                    }
                    Roles.AddUserToRole(txtuser.Text, cbrol.Text);
                    ErrorMessage.Text = "Usuario creado";

           //  Response.Redirect("/Default.aspx"); Redirecciona paginas

            }
            catch (MembershipCreateUserException w)
            {
                ErrorMessage.Text = GetErrorMessage(w.StatusCode);
            }
            catch (HttpException i)
            {
                ErrorMessage.Text = i.Message;
            }

           


        }

        public string GetErrorMessage(MembershipCreateStatus status)
        {
            switch (status)
            {
                case MembershipCreateStatus.DuplicateUserName:
                    return "Nombre de usuario ya existe. Por favor, introduzca un nombre de usuario diferente.";

                case MembershipCreateStatus.DuplicateEmail:
                    return "Un usuario a utilizado esta direccion de e-mail. Por favor, introduzca una direccion de e-mail diferente.";

                case MembershipCreateStatus.InvalidPassword:
                    return "La contraseña debe tener al menos 6 digitos. Por favor, introduzca una contraseña diferente.";

                case MembershipCreateStatus.InvalidEmail:
                    return "La direccion de e-mail address ingresada es invalida. Por favor, revise y vuelva a intentarlo.";

                case MembershipCreateStatus.InvalidAnswer:
                    return "La respuesta de recuperación de contraseña proporcionada no es válida. Por favor, compruebe y vuelva a intentarlo.";

                case MembershipCreateStatus.InvalidQuestion:
                    return "La Pregunta de la recuperación de la contraseña proporcionada no es válida. Por favor, compruebe el valor y vuelva a intentarlo.";

                case MembershipCreateStatus.InvalidUserName:
                    return "El nombre de usuario proporcionado no es válido. Por favor, compruebe el valor y vuelva a intentarlo.";

                case MembershipCreateStatus.ProviderError:
                    return "El proveedor de autenticación devuelto un error. Por favor, verifique su entrada y vuelva a intentarlo. Si el problema persiste, póngase en contacto con el administrador del sistema.";

                case MembershipCreateStatus.UserRejected:
                    return "La solicitud de creación de usuario ha sido cancelado. Por favor, verifique su entrada y vuelva a intentarlo. Si el problema persiste, póngase en contacto con el administrador del sistema.";

                default:
                    return "Ocurrió un error desconocido. Por favor, verifique su entrada y vuelva a intentarlo. Si el problema persiste, póngase en contacto con el administrador del sistema.";
            }
        }

        protected void btnlimpiar_Click(object sender, EventArgs e)
        {
            txtuser.Text = "";
            txtpass.Text = "";
            txtrpass.Text = "";
            txtemail.Text = "";
            txtquestion.Text = "";
            txtasw.Text = "";
            ErrorMessage.Text = "";
        }
    }
}